

-------------------------------------------------------
--------------CREATE AGGREGATE TABLE-------------------
-------------------------------------------------------

create table AGGREGATE.CART_YEAR_SHOP_SALES_1718
(
  SHOP_ID  int           not null,
  SHOP     Varchar(1000) not null,
  DISCOUNT float         not null,
  MARGIN   float         not null,
  nRECEIPT int           not null,
  GAIN     float         not null,
  COGS     float         not null,
  FlagOpen Varchar(1000) not null
)
create table AGGREGATE.CART_QUARTER_SHOP_SALES_1718
(
  SHOP_ID  int           not null,
  SHOP     Varchar(1000) not null,
  MARGIN   float         not null,
  nRECEIPT int           not null,
  GAIN     float         not null,
  COGS     float         not null,
  FlagOpen Varchar(1000) not null
)
create table AGGREGATE.CART_QUARTER_SHOP_SALES_19
(
  SHOP_ID  int           not null,
  SHOP     Varchar(1000) not null,
  MARGIN   float         not null,
  nRECEIPT int           not null,
  GAIN     float         not null,
  COGS     float         not null,
  FlagOpen Varchar(1000) not null
)

-------------------------------------------------------
-------------------------QUERY-------------------------
-------------------------------------------------------

INSERT INTO AGGREGATE.CART_YEAR_SHOP_SALES_1718
select Distinct L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_               as SHOP_ID,
                L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_             as SHOP,
                SUM(_SCONTO_GENERICO_SC_ + _SCONTO_SC_)               as DISCOUNT,
                (SUM(_FATTURATO_NI_SC_) - SUM(_COSTO_VENDUTO_NI_SC_)) as MARGIN,
                count(distinct _NUMERO_SCONTRINO_)                    as nRECEIPT,
                SUM(_FATTURATO_NI_SC_)                                as GAIN,
                SUM(_COSTO_VENDUTO_NI_SC_)                            as COGS,
                case
                  when L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_ not like '%*%' then 'OPEN'
                  else 'CLOSE' end                                    as FlagOpen
from L2_STAR_SCHEMA.FACT_SALES_SS,
     L2_STAR_SCHEMA.DIM_DATE_SS,
     L2_STAR_SCHEMA.DIM_SHOP_SS
Where L2_STAR_SCHEMA.FACT_SALES_SS._GIORNO_ = L2_STAR_SCHEMA.DIM_DATE_SS.Date
  and L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_ = L2_STAR_SCHEMA.FACT_SALES_SS._NEGOZIO_ID_
  and L2_STAR_SCHEMA.DIM_DATE_SS.Year in (2018,2017)
Group by L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_,L2_STAR_SCHEMA.DIM_SHOP_SS._CANALE_DESC_,L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_
Order by FlagOpen;


INSERT INTO AGGREGATE.CART_QUARTER_SHOP_SALES_1718
select Distinct L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_               as SHOP_ID,
                L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_             as SHOP,
                (SUM(_FATTURATO_NI_SC_) - SUM(_COSTO_VENDUTO_NI_SC_)) as MARGIN,
                count(distinct _NUMERO_SCONTRINO_)                    as nRECEIPT,
                SUM(_FATTURATO_NI_SC_)                                as GAIN,
                SUM(_COSTO_VENDUTO_NI_SC_)                            as COGS,
                case
                  when L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_ not like '%*%' then 'OPEN'
                  else 'CLOSE' end                                    as FlagOpen
from L2_STAR_SCHEMA.FACT_SALES_SS,
     L2_STAR_SCHEMA.DIM_DATE_SS,
     L2_STAR_SCHEMA.DIM_SHOP_SS
Where L2_STAR_SCHEMA.FACT_SALES_SS._GIORNO_ = L2_STAR_SCHEMA.DIM_DATE_SS.Date
  and L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_ = L2_STAR_SCHEMA.FACT_SALES_SS._NEGOZIO_ID_
  and L2_STAR_SCHEMA.DIM_DATE_SS.Year in (2018, 2017)
  and L2_STAR_SCHEMA.DIM_DATE_SS.Quarter = 1
Group by L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_, L2_STAR_SCHEMA.DIM_SHOP_SS._CANALE_DESC_,
         L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_
Order by FlagOpen;



INSERT INTO AGGREGATE.CART_QUARTER_SHOP_SALES_19
select Distinct L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_               as SHOP_ID,
                L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_             as SHOP,
                (SUM(_FATTURATO_NI_SC_) - SUM(_COSTO_VENDUTO_NI_SC_)) as MARGIN,
                count(distinct _NUMERO_SCONTRINO_)                    as nRECEIPT,
                SUM(_FATTURATO_NI_SC_)                                as GAIN,
                SUM(_COSTO_VENDUTO_NI_SC_)                            as COGS,
                case
                  when SUM(_FATTURATO_NI_SC_) >0 then 'OPEN'
                  else 'CLOSE' end                                    as FlagOpen
from L2_STAR_SCHEMA.FACT_SALES_SS,
     L2_STAR_SCHEMA.DIM_DATE_SS,
     L2_STAR_SCHEMA.DIM_SHOP_SS
Where L2_STAR_SCHEMA.FACT_SALES_SS._GIORNO_ = L2_STAR_SCHEMA.DIM_DATE_SS.Date
  and L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_ = L2_STAR_SCHEMA.FACT_SALES_SS._NEGOZIO_ID_
  and L2_STAR_SCHEMA.DIM_DATE_SS.Year in (2019)
  --and
  and L2_STAR_SCHEMA.DIM_DATE_SS.Quarter = 1
Group by L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_, L2_STAR_SCHEMA.DIM_SHOP_SS._CANALE_DESC_,
         L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_
Order by FlagOpen;


-------------------------------------------------------
------------------------truncate-----------------------
-------------------------------------------------------

truncate table AGGREGATE.CART_YEAR_SHOP_SALES_1718;
truncate table AGGREGATE.CART_QUARTER_SHOP_SALES_1718;
truncate table AGGREGATE.CART_QUARTER_SHOP_SALES_19;

-------------------------------------------------------
--------------------------CHECK------------------------
-------------------------------------------------------

Select COUNT(DISTINCT _negozio_desc_) as OPEN_SHOP, year
From L2_STAR_SCHEMA.DIM_SHOP_SS,
     L2_STAR_SCHEMA.FACT_SALES_SS,
     L2_STAR_SCHEMA.DIM_DATE_SS
where L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_ = L2_STAR_SCHEMA.FACT_SALES_SS._NEGOZIO_ID_
  and L2_STAR_SCHEMA.FACT_SALES_SS._GIORNO_ = L2_STAR_SCHEMA.DIM_DATE_SS.Date
  and L2_STAR_SCHEMA.FACT_SALES_SS._FATTURATO_NI_SC_ > 0
group by Year;
--------------------------------------------------------
OPEN_SHOP	year
93	      2017
77	      2018
29	      2019
---------------------------------------------------------




